env var carriers to only read and return normalized names#5144
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the environment-variable carrier specification to avoid requiring environment enumeration during extraction by defining that carriers only operate on normalized environment variable names (for reads and key listing), addressing the efficiency and determinism concerns raised in issue #5143.
Changes:
- Redefine env-var carrier
Getbehavior to read only the normalized key name (no matching against non-normalized env var names). - Redefine
Keysbehavior to return only already-normalized environment variable names. - Add a changelog entry documenting this specification clarification.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| specification/context/env-carriers.md | Tightens normalization semantics so Get reads only normalized env var names and Keys returns only already-normalized names. |
| CHANGELOG.md | Records the env-var carrier normalization behavior change in the Unreleased Context section. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
CC @open-telemetry/semconv-cicd-approvers @marcalff @jack-berg |
marcalff
left a comment
There was a problem hiding this comment.
LGTM,
Thanks for supporting this simplification.
Check out the java implementation of this. Some notes:
Finally, starting a new process that needs env var context propagation seems like orders of magnitude more resource utilization that what we're talking about for reading / normalizing all env vars. Does this really matter?
Does this solve that? The real inefficiency comes from keys(), which in the current implementation has to iterate / normalize all |
|
@jack-berg, regarding #5144 (comment) I suggest continuing the discussion in #5143. Notably please check #5143 (comment) which should answer your concern. |
[//]: # (dependabot-start)⚠️ **Dependabot is rebasing this PR**⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Updated [OpenTelemetry.Exporter.OpenTelemetryProtocol](https://github.com/open-telemetry/opentelemetry-dotnet) from 1.16.0 to 1.17.0. <details> <summary>Release notes</summary> _Sourced from [OpenTelemetry.Exporter.OpenTelemetryProtocol's releases](https://github.com/open-telemetry/opentelemetry-dotnet/releases)._ ## 1.17.0 For highlights and announcements pertaining to this release see: [Release Notes > 1.17.0](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md#1170). The following changes are from the previous release [1.17.0-rc.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.17.0-rc.1). * NuGet: [OpenTelemetry v1.17.0](https://www.nuget.org/packages/OpenTelemetry/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Api/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Api/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api.ProviderBuilderExtensions v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Api.ProviderBuilderExtensions/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Api.ProviderBuilderExtensions/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Console v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Console/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.Console/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.InMemory v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.InMemory/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.InMemory/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.OpenTelemetryProtocol v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.OpenTelemetryProtocol/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Zipkin v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Zipkin/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.Zipkin/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Extensions.Hosting v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Extensions.Hosting/1.17.0) No notable changes. ... (truncated) ## 1.17.0-rc.1 The following changes are from the previous release [1.16.0](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.16.0). * NuGet: [OpenTelemetry v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry/1.17.0-rc.1) * Fixed a metric point reclaim data race on CPU ARM architectures. ([#7401](open-telemetry/opentelemetry-dotnet#7401)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * Replaced the vendored copy of `EnvironmentVariablesConfigurationProvider` with a direct `Microsoft.Extensions.Configuration.EnvironmentVariables` package dependency. Consumers gain automatic pickup of upstream bug fixes and security patches; no public API or behavioural change. ([#7146](open-telemetry/opentelemetry-dotnet#7146)) * Added a verbose `OpenTelemetry-Sdk` self-diagnostics event that is emitted when an activity is dropped because its local (in-process) parent is not recorded. ([#7427](open-telemetry/opentelemetry-dotnet#7427)) * Added support for a Schema URL on `Resource` instances. ([#7472](open-telemetry/opentelemetry-dotnet#7472)) * Fixed a metric storage leak that occurred when meters and instruments were repeatedly created and disposed. ([#7466](open-telemetry/opentelemetry-dotnet#7466)) * Added `ExcludedTagKeys` property to `MetricStreamConfiguration` to support excluding specific tag keys from metric streams. ([#7373](open-telemetry/opentelemetry-dotnet#7373)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0-rc.1/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry.Api/1.17.0-rc.1) * Fixed `TraceContextPropagator` to normalize empty `tracestate` header values to `null` when extracting trace context. ([#7407](open-telemetry/opentelemetry-dotnet#7407), [#7433](open-telemetry/opentelemetry-dotnet#7433)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * **Experimental (pre-release builds only):** Updated `EnvironmentVariableCarrier.Get` to read only the normalized environment variable name, following the updated [environment variable carrier specification](open-telemetry/opentelemetry-specification#5144). Non-normalized carrier keys are no longer matched, even when they would normalize to the requested key. ... (truncated) ## 1.17.0-beta.1 The following changes are from the previous release [1.16.0-beta.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/coreunstable-1.16.0-beta.1). * NuGet: [OpenTelemetry.Exporter.Prometheus.AspNetCore v1.17.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.AspNetCore/1.17.0-beta.1) * Added a verbose-level diagnostic event for ignored metrics. ([#7429](open-telemetry/opentelemetry-dotnet#7429)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * Fix double unit suffixes in metric names when using OpenMetrics. ([#7454](open-telemetry/opentelemetry-dotnet#7454)) * Fix incorrect handling of leading digits in metric names for OpenMetrics. ([#7454](open-telemetry/opentelemetry-dotnet#7454)) * Add `PrometheusAspNetCoreOptions.ScopeInfoEnabled` property to enable or disable scope labels in Prometheus metrics. Defaults to `true`. ([#7436](open-telemetry/opentelemetry-dotnet#7436)) * Added support for the `dots` and `values` Prometheus UTF-8 name escaping schemes when negotiated via the `Accept` header. ([#7439](open-telemetry/opentelemetry-dotnet#7439)) * Add `PrometheusAspNetCoreOptions.TargetInfoEnabled` property to enable or disable the `target_info` metric in Prometheus metrics. Defaults to `true`. ([#7438](open-telemetry/opentelemetry-dotnet#7438)) * Added support for the `allow-utf-8` Prometheus UTF-8 name escaping scheme when negotiated via the `Accept` header. ([#7440](open-telemetry/opentelemetry-dotnet#7440)) * Add `PrometheusAspNetCoreOptions.ResourceConstantLabels` property to select resource attributes to add to each metric as constant labels. Defaults to `null` (no resource attributes are added as metric labels). ([#7471](open-telemetry/opentelemetry-dotnet#7471)) * Add `PrometheusAspNetCoreOptions.MaxScrapeResponseSizeBytes` to configure the maximum size of a scrape response. The default is now ~166 MiB. ([#7487](open-telemetry/opentelemetry-dotnet#7487)) * A scrape whose serialized output exceeds the maximum scrape response size limit now responds with HTTP 500. ([#7487](open-telemetry/opentelemetry-dotnet#7487)) * Fixed the Prometheus text exposition format emitting redundant comments. ([#7491](open-telemetry/opentelemetry-dotnet#7491)) * Made `Accept` header content negotiation consistent with the `PrometheusHttpListener` endpoint. ... (truncated) Commits viewable in [compare view](open-telemetry/opentelemetry-dotnet@core-1.16.0...core-1.17.0). </details> Updated [OpenTelemetry.Extensions.Hosting](https://github.com/open-telemetry/opentelemetry-dotnet) from 1.16.0 to 1.17.0. <details> <summary>Release notes</summary> _Sourced from [OpenTelemetry.Extensions.Hosting's releases](https://github.com/open-telemetry/opentelemetry-dotnet/releases)._ ## 1.17.0 For highlights and announcements pertaining to this release see: [Release Notes > 1.17.0](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md#1170). The following changes are from the previous release [1.17.0-rc.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.17.0-rc.1). * NuGet: [OpenTelemetry v1.17.0](https://www.nuget.org/packages/OpenTelemetry/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Api/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Api/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api.ProviderBuilderExtensions v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Api.ProviderBuilderExtensions/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Api.ProviderBuilderExtensions/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Console v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Console/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.Console/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.InMemory v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.InMemory/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.InMemory/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.OpenTelemetryProtocol v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.OpenTelemetryProtocol/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Zipkin v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Zipkin/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.Zipkin/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Extensions.Hosting v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Extensions.Hosting/1.17.0) No notable changes. ... (truncated) ## 1.17.0-rc.1 The following changes are from the previous release [1.16.0](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.16.0). * NuGet: [OpenTelemetry v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry/1.17.0-rc.1) * Fixed a metric point reclaim data race on CPU ARM architectures. ([#7401](open-telemetry/opentelemetry-dotnet#7401)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * Replaced the vendored copy of `EnvironmentVariablesConfigurationProvider` with a direct `Microsoft.Extensions.Configuration.EnvironmentVariables` package dependency. Consumers gain automatic pickup of upstream bug fixes and security patches; no public API or behavioural change. ([#7146](open-telemetry/opentelemetry-dotnet#7146)) * Added a verbose `OpenTelemetry-Sdk` self-diagnostics event that is emitted when an activity is dropped because its local (in-process) parent is not recorded. ([#7427](open-telemetry/opentelemetry-dotnet#7427)) * Added support for a Schema URL on `Resource` instances. ([#7472](open-telemetry/opentelemetry-dotnet#7472)) * Fixed a metric storage leak that occurred when meters and instruments were repeatedly created and disposed. ([#7466](open-telemetry/opentelemetry-dotnet#7466)) * Added `ExcludedTagKeys` property to `MetricStreamConfiguration` to support excluding specific tag keys from metric streams. ([#7373](open-telemetry/opentelemetry-dotnet#7373)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0-rc.1/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry.Api/1.17.0-rc.1) * Fixed `TraceContextPropagator` to normalize empty `tracestate` header values to `null` when extracting trace context. ([#7407](open-telemetry/opentelemetry-dotnet#7407), [#7433](open-telemetry/opentelemetry-dotnet#7433)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * **Experimental (pre-release builds only):** Updated `EnvironmentVariableCarrier.Get` to read only the normalized environment variable name, following the updated [environment variable carrier specification](open-telemetry/opentelemetry-specification#5144). Non-normalized carrier keys are no longer matched, even when they would normalize to the requested key. ... (truncated) ## 1.17.0-beta.1 The following changes are from the previous release [1.16.0-beta.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/coreunstable-1.16.0-beta.1). * NuGet: [OpenTelemetry.Exporter.Prometheus.AspNetCore v1.17.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.AspNetCore/1.17.0-beta.1) * Added a verbose-level diagnostic event for ignored metrics. ([#7429](open-telemetry/opentelemetry-dotnet#7429)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * Fix double unit suffixes in metric names when using OpenMetrics. ([#7454](open-telemetry/opentelemetry-dotnet#7454)) * Fix incorrect handling of leading digits in metric names for OpenMetrics. ([#7454](open-telemetry/opentelemetry-dotnet#7454)) * Add `PrometheusAspNetCoreOptions.ScopeInfoEnabled` property to enable or disable scope labels in Prometheus metrics. Defaults to `true`. ([#7436](open-telemetry/opentelemetry-dotnet#7436)) * Added support for the `dots` and `values` Prometheus UTF-8 name escaping schemes when negotiated via the `Accept` header. ([#7439](open-telemetry/opentelemetry-dotnet#7439)) * Add `PrometheusAspNetCoreOptions.TargetInfoEnabled` property to enable or disable the `target_info` metric in Prometheus metrics. Defaults to `true`. ([#7438](open-telemetry/opentelemetry-dotnet#7438)) * Added support for the `allow-utf-8` Prometheus UTF-8 name escaping scheme when negotiated via the `Accept` header. ([#7440](open-telemetry/opentelemetry-dotnet#7440)) * Add `PrometheusAspNetCoreOptions.ResourceConstantLabels` property to select resource attributes to add to each metric as constant labels. Defaults to `null` (no resource attributes are added as metric labels). ([#7471](open-telemetry/opentelemetry-dotnet#7471)) * Add `PrometheusAspNetCoreOptions.MaxScrapeResponseSizeBytes` to configure the maximum size of a scrape response. The default is now ~166 MiB. ([#7487](open-telemetry/opentelemetry-dotnet#7487)) * A scrape whose serialized output exceeds the maximum scrape response size limit now responds with HTTP 500. ([#7487](open-telemetry/opentelemetry-dotnet#7487)) * Fixed the Prometheus text exposition format emitting redundant comments. ([#7491](open-telemetry/opentelemetry-dotnet#7491)) * Made `Accept` header content negotiation consistent with the `PrometheusHttpListener` endpoint. ... (truncated) Commits viewable in [compare view](open-telemetry/opentelemetry-dotnet@core-1.16.0...core-1.17.0). </details> Updated [OpenTelemetry.Instrumentation.AspNetCore](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) from 1.16.0 to 1.17.0. <details> <summary>Release notes</summary> _Sourced from [OpenTelemetry.Instrumentation.AspNetCore's releases](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/releases)._ ## 1.17.0 * NuGet: [OpenTelemetry.Exporter.Geneva v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Geneva/1.17.0) * Updated OpenTelemetry core component version(s) to `1.17.0`. ([#4773](open-telemetry/opentelemetry-dotnet-contrib#4773)) * Updated ETW manifest and payload in `EtwDataTransport` with synthetic payload so that the runtime-generated .NET ETW manifest matches the actual payload. ([#4729](open-telemetry/opentelemetry-dotnet-contrib#4729) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Exporter.Geneva-1.17.0/src/OpenTelemetry.Exporter.Geneva/CHANGELOG.md) for details. ## 1.17.0-rc.1 * NuGet: [OpenTelemetry.Instrumentation.Process v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Process/1.17.0-rc.1) * Updated OpenTelemetry core component version(s) to `1.17.0`. ([#4773](open-telemetry/opentelemetry-dotnet-contrib#4773)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Instrumentation.Process-1.17.0-rc.1/src/OpenTelemetry.Instrumentation.Process/CHANGELOG.md) for details. ## 1.17.0-beta.1 * NuGet: [OpenTelemetry.Extensions.Enrichment v1.17.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Extensions.Enrichment/1.17.0-beta.1) * Updated OpenTelemetry core component version(s) to `1.17.0`. ([#4773](open-telemetry/opentelemetry-dotnet-contrib#4773)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Extensions.Enrichment-1.17.0-beta.1/src/OpenTelemetry.Extensions.Enrichment/CHANGELOG.md) for details. ## 1.17.0-alpha.1 * NuGet: [OpenTelemetry.Instrumentation.EventCounters v1.17.0-alpha.1](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.EventCounters/1.17.0-alpha.1) * Assemblies are now digitally signed using cosign. ([#4637](open-telemetry/opentelemetry-dotnet-contrib#4637)) * Updated OpenTelemetry core component version(s) to `1.17.0`. ([#4773](open-telemetry/opentelemetry-dotnet-contrib#4773)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Instrumentation.EventCounters-1.17.0-alpha.1/src/OpenTelemetry.Instrumentation.EventCounters/CHANGELOG.md) for details. Commits viewable in [compare view](open-telemetry/opentelemetry-dotnet-contrib@Instrumentation.AWS-1.16.0...Exporter.Geneva-1.17.0). </details> Updated [OpenTelemetry.Instrumentation.Http](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) from 1.16.0 to 1.17.0. <details> <summary>Release notes</summary> _Sourced from [OpenTelemetry.Instrumentation.Http's releases](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/releases)._ ## 1.17.0 * NuGet: [OpenTelemetry.Exporter.Geneva v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Geneva/1.17.0) * Updated OpenTelemetry core component version(s) to `1.17.0`. ([#4773](open-telemetry/opentelemetry-dotnet-contrib#4773)) * Updated ETW manifest and payload in `EtwDataTransport` with synthetic payload so that the runtime-generated .NET ETW manifest matches the actual payload. ([#4729](open-telemetry/opentelemetry-dotnet-contrib#4729) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Exporter.Geneva-1.17.0/src/OpenTelemetry.Exporter.Geneva/CHANGELOG.md) for details. ## 1.17.0-rc.1 * NuGet: [OpenTelemetry.Instrumentation.Process v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Process/1.17.0-rc.1) * Updated OpenTelemetry core component version(s) to `1.17.0`. ([#4773](open-telemetry/opentelemetry-dotnet-contrib#4773)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Instrumentation.Process-1.17.0-rc.1/src/OpenTelemetry.Instrumentation.Process/CHANGELOG.md) for details. ## 1.17.0-beta.1 * NuGet: [OpenTelemetry.Extensions.Enrichment v1.17.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Extensions.Enrichment/1.17.0-beta.1) * Updated OpenTelemetry core component version(s) to `1.17.0`. ([#4773](open-telemetry/opentelemetry-dotnet-contrib#4773)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Extensions.Enrichment-1.17.0-beta.1/src/OpenTelemetry.Extensions.Enrichment/CHANGELOG.md) for details. ## 1.17.0-alpha.1 * NuGet: [OpenTelemetry.Instrumentation.EventCounters v1.17.0-alpha.1](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.EventCounters/1.17.0-alpha.1) * Assemblies are now digitally signed using cosign. ([#4637](open-telemetry/opentelemetry-dotnet-contrib#4637)) * Updated OpenTelemetry core component version(s) to `1.17.0`. ([#4773](open-telemetry/opentelemetry-dotnet-contrib#4773)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Instrumentation.EventCounters-1.17.0-alpha.1/src/OpenTelemetry.Instrumentation.EventCounters/CHANGELOG.md) for details. Commits viewable in [compare view](open-telemetry/opentelemetry-dotnet-contrib@Instrumentation.AWS-1.16.0...Exporter.Geneva-1.17.0). </details> Updated [OpenTelemetry.Instrumentation.Runtime](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) from 1.16.0 to 1.17.0. <details> <summary>Release notes</summary> _Sourced from [OpenTelemetry.Instrumentation.Runtime's releases](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/releases)._ ## 1.17.0 * NuGet: [OpenTelemetry.Exporter.Geneva v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Geneva/1.17.0) * Updated OpenTelemetry core component version(s) to `1.17.0`. ([#4773](open-telemetry/opentelemetry-dotnet-contrib#4773)) * Updated ETW manifest and payload in `EtwDataTransport` with synthetic payload so that the runtime-generated .NET ETW manifest matches the actual payload. ([#4729](open-telemetry/opentelemetry-dotnet-contrib#4729) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Exporter.Geneva-1.17.0/src/OpenTelemetry.Exporter.Geneva/CHANGELOG.md) for details. ## 1.17.0-rc.1 * NuGet: [OpenTelemetry.Instrumentation.Process v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Process/1.17.0-rc.1) * Updated OpenTelemetry core component version(s) to `1.17.0`. ([#4773](open-telemetry/opentelemetry-dotnet-contrib#4773)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Instrumentation.Process-1.17.0-rc.1/src/OpenTelemetry.Instrumentation.Process/CHANGELOG.md) for details. ## 1.17.0-beta.1 * NuGet: [OpenTelemetry.Extensions.Enrichment v1.17.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Extensions.Enrichment/1.17.0-beta.1) * Updated OpenTelemetry core component version(s) to `1.17.0`. ([#4773](open-telemetry/opentelemetry-dotnet-contrib#4773)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Extensions.Enrichment-1.17.0-beta.1/src/OpenTelemetry.Extensions.Enrichment/CHANGELOG.md) for details. ## 1.17.0-alpha.1 * NuGet: [OpenTelemetry.Instrumentation.EventCounters v1.17.0-alpha.1](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.EventCounters/1.17.0-alpha.1) * Assemblies are now digitally signed using cosign. ([#4637](open-telemetry/opentelemetry-dotnet-contrib#4637)) * Updated OpenTelemetry core component version(s) to `1.17.0`. ([#4773](open-telemetry/opentelemetry-dotnet-contrib#4773)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/Instrumentation.EventCounters-1.17.0-alpha.1/src/OpenTelemetry.Instrumentation.EventCounters/CHANGELOG.md) for details. Commits viewable in [compare view](open-telemetry/opentelemetry-dotnet-contrib@Instrumentation.AWS-1.16.0...Exporter.Geneva-1.17.0). </details> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details>
…xtensions.Hosting (#117) Pinned [OpenTelemetry.Exporter.OpenTelemetryProtocol](https://github.com/open-telemetry/opentelemetry-dotnet) at 1.17.0. <details> <summary>Release notes</summary> _Sourced from [OpenTelemetry.Exporter.OpenTelemetryProtocol's releases](https://github.com/open-telemetry/opentelemetry-dotnet/releases)._ ## 1.17.0 For highlights and announcements pertaining to this release see: [Release Notes > 1.17.0](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md#1170). The following changes are from the previous release [1.17.0-rc.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.17.0-rc.1). * NuGet: [OpenTelemetry v1.17.0](https://www.nuget.org/packages/OpenTelemetry/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Api/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Api/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api.ProviderBuilderExtensions v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Api.ProviderBuilderExtensions/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Api.ProviderBuilderExtensions/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Console v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Console/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.Console/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.InMemory v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.InMemory/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.InMemory/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.OpenTelemetryProtocol v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.OpenTelemetryProtocol/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Zipkin v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Zipkin/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.Zipkin/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Extensions.Hosting v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Extensions.Hosting/1.17.0) No notable changes. ... (truncated) ## 1.17.0-rc.1 The following changes are from the previous release [1.16.0](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.16.0). * NuGet: [OpenTelemetry v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry/1.17.0-rc.1) * Fixed a metric point reclaim data race on CPU ARM architectures. ([#7401](open-telemetry/opentelemetry-dotnet#7401)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * Replaced the vendored copy of `EnvironmentVariablesConfigurationProvider` with a direct `Microsoft.Extensions.Configuration.EnvironmentVariables` package dependency. Consumers gain automatic pickup of upstream bug fixes and security patches; no public API or behavioural change. ([#7146](open-telemetry/opentelemetry-dotnet#7146)) * Added a verbose `OpenTelemetry-Sdk` self-diagnostics event that is emitted when an activity is dropped because its local (in-process) parent is not recorded. ([#7427](open-telemetry/opentelemetry-dotnet#7427)) * Added support for a Schema URL on `Resource` instances. ([#7472](open-telemetry/opentelemetry-dotnet#7472)) * Fixed a metric storage leak that occurred when meters and instruments were repeatedly created and disposed. ([#7466](open-telemetry/opentelemetry-dotnet#7466)) * Added `ExcludedTagKeys` property to `MetricStreamConfiguration` to support excluding specific tag keys from metric streams. ([#7373](open-telemetry/opentelemetry-dotnet#7373)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0-rc.1/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry.Api/1.17.0-rc.1) * Fixed `TraceContextPropagator` to normalize empty `tracestate` header values to `null` when extracting trace context. ([#7407](open-telemetry/opentelemetry-dotnet#7407), [#7433](open-telemetry/opentelemetry-dotnet#7433)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * **Experimental (pre-release builds only):** Updated `EnvironmentVariableCarrier.Get` to read only the normalized environment variable name, following the updated [environment variable carrier specification](open-telemetry/opentelemetry-specification#5144). Non-normalized carrier keys are no longer matched, even when they would normalize to the requested key. ... (truncated) ## 1.17.0-beta.1 The following changes are from the previous release [1.16.0-beta.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/coreunstable-1.16.0-beta.1). * NuGet: [OpenTelemetry.Exporter.Prometheus.AspNetCore v1.17.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.AspNetCore/1.17.0-beta.1) * Added a verbose-level diagnostic event for ignored metrics. ([#7429](open-telemetry/opentelemetry-dotnet#7429)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * Fix double unit suffixes in metric names when using OpenMetrics. ([#7454](open-telemetry/opentelemetry-dotnet#7454)) * Fix incorrect handling of leading digits in metric names for OpenMetrics. ([#7454](open-telemetry/opentelemetry-dotnet#7454)) * Add `PrometheusAspNetCoreOptions.ScopeInfoEnabled` property to enable or disable scope labels in Prometheus metrics. Defaults to `true`. ([#7436](open-telemetry/opentelemetry-dotnet#7436)) * Added support for the `dots` and `values` Prometheus UTF-8 name escaping schemes when negotiated via the `Accept` header. ([#7439](open-telemetry/opentelemetry-dotnet#7439)) * Add `PrometheusAspNetCoreOptions.TargetInfoEnabled` property to enable or disable the `target_info` metric in Prometheus metrics. Defaults to `true`. ([#7438](open-telemetry/opentelemetry-dotnet#7438)) * Added support for the `allow-utf-8` Prometheus UTF-8 name escaping scheme when negotiated via the `Accept` header. ([#7440](open-telemetry/opentelemetry-dotnet#7440)) * Add `PrometheusAspNetCoreOptions.ResourceConstantLabels` property to select resource attributes to add to each metric as constant labels. Defaults to `null` (no resource attributes are added as metric labels). ([#7471](open-telemetry/opentelemetry-dotnet#7471)) * Add `PrometheusAspNetCoreOptions.MaxScrapeResponseSizeBytes` to configure the maximum size of a scrape response. The default is now ~166 MiB. ([#7487](open-telemetry/opentelemetry-dotnet#7487)) * A scrape whose serialized output exceeds the maximum scrape response size limit now responds with HTTP 500. ([#7487](open-telemetry/opentelemetry-dotnet#7487)) * Fixed the Prometheus text exposition format emitting redundant comments. ([#7491](open-telemetry/opentelemetry-dotnet#7491)) * Made `Accept` header content negotiation consistent with the `PrometheusHttpListener` endpoint. ... (truncated) ## 1.16.0 For highlights and announcements pertaining to this release see: [Release Notes > 1.16.0](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md#1160). The following changes are from the previous release [1.16.0-rc.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.16.0-rc.1). * NuGet: [OpenTelemetry v1.16.0](https://www.nuget.org/packages/OpenTelemetry/1.16.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.16.0](https://www.nuget.org/packages/OpenTelemetry.Api/1.16.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry.Api/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api.ProviderBuilderExtensions v1.16.0](https://www.nuget.org/packages/OpenTelemetry.Api.ProviderBuilderExtensions/1.16.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry.Api.ProviderBuilderExtensions/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Console v1.16.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Console/1.16.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry.Exporter.Console/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.InMemory v1.16.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.InMemory/1.16.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry.Exporter.InMemory/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.OpenTelemetryProtocol v1.16.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.OpenTelemetryProtocol/1.16.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Zipkin v1.16.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Zipkin/1.16.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry.Exporter.Zipkin/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Extensions.Hosting v1.16.0](https://www.nuget.org/packages/OpenTelemetry.Extensions.Hosting/1.16.0) No notable changes. ... (truncated) ## 1.16.0-rc.1 The following changes are from the previous release [1.15.3](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.15.3). * NuGet: [OpenTelemetry v1.16.0-rc.1](https://www.nuget.org/packages/OpenTelemetry/1.16.0-rc.1) * Stop validating View-provided metric stream `Name` against the instrument name syntax, per [spec clarification](open-telemetry/opentelemetry-specification#5094). ([#7300](open-telemetry/opentelemetry-dotnet#7300)) * Fix incorrect validation of `OTEL_BSP_*` and `OTEL_BLRP_*` environment variables. ([#7187](open-telemetry/opentelemetry-dotnet#7187)) * Fix observable instrument callbacks running once per reader instead of once per collection cycle. ([#7188](open-telemetry/opentelemetry-dotnet#7188)) * Added exception safety for user-supplied `ExemplarReservoir` implementations. Exceptions thrown from `Offer` are now caught and logged rather than propagating out of `Counter.Add`/`Histogram.Record`. ([#7277](open-telemetry/opentelemetry-dotnet#7277)) * Update `OpenTelemetrySdkEventSource` to support the W3C randomness flag. ([#7301](open-telemetry/opentelemetry-dotnet#7301)) * Added `ObservedTimestamp` property to `LogRecord`. ([#6979](open-telemetry/opentelemetry-dotnet#6979)) * **Breaking Change** Explicit histogram boundaries no longer allow more than 10 million values. ([#7165](open-telemetry/opentelemetry-dotnet#7165)) * Fixed a circular reference which could cause a `LoggerProvider` to fail to resolve when one of its dependencies depends on `ILogger` or `ILoggerFactory`. As part of this fix the `LoggerProvider` resolved from dependency injection is now created lazily when the first logger is created rather than when `ILoggerProvider` or `ILoggerFactory` is resolved. A consequence is that any invalid configuration now surfaces when the first log record is written instead of when the logging services are resolved. ([#7308](open-telemetry/opentelemetry-dotnet#7308)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0-rc.1/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.16.0-rc.1](https://www.nuget.org/packages/OpenTelemetry.Api/1.16.0-rc.1) * **Experimental (pre-release builds only):** Add support for using environment variables as context propagation carriers. ([#7174](open-telemetry/opentelemetry-dotnet#7174)) * Fix `BaggagePropagator` to correctly follow Key and Value Encoding rules as per ... (truncated) ## 1.16.0-beta.1 The following changes are from the previous release [1.15.3-beta.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/coreunstable-1.15.3-beta.1). * NuGet: [OpenTelemetry.Exporter.Prometheus.AspNetCore v1.16.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.AspNetCore/1.16.0-beta.1) * Fixed scrape response cache freshness using monotonic time so it is not affected by NTP system clock adjustments. ([#7253](open-telemetry/opentelemetry-dotnet#7253)) * **Breaking Change** Removed `DisableTimestamp` property from `PrometheusAspNetCoreOptions`. ([#7176](open-telemetry/opentelemetry-dotnet#7176)) * Fixed the serialization of `NaN`, `PositiveInfinity`, and `NegativeInfinity` values in Prometheus metrics to be compliant with the specification. ([#7179](open-telemetry/opentelemetry-dotnet#7179)) * Fixed loss of precision when serializing `double` and `float` values in Prometheus metrics to be compliant with the specification by using 17 significant digits to represent such values. ([#7179](open-telemetry/opentelemetry-dotnet#7179)) * Fix non-ASCII characters in metric names and unit strings not being sanitized correctly during Prometheus serialization. ([#7184](open-telemetry/opentelemetry-dotnet#7184)) * Fix case where reader tracking could be reset while readers were still active. ([#7190](open-telemetry/opentelemetry-dotnet#7190)) * Improve `Accept` header handling for format negotiation so OpenMetrics is selected correctly by considering whitespace and `q` weights. ([#7208](open-telemetry/opentelemetry-dotnet#7208)) * Emit OpenMetrics exemplars for counters and histogram buckets. ([#7222](open-telemetry/opentelemetry-dotnet#7222)) * Fix incorrect handling of untyped metrics when using OpenMetrics format. ([#7219](open-telemetry/opentelemetry-dotnet#7219)) * Fix Prometheus/OpenMetrics serialization to emit metric and label names containing `_` instead of dropping them and prefixing leading digits. Invalid characters are replaced with `_` instead of being dropped. ([#7209](open-telemetry/opentelemetry-dotnet#7209)) * Add `escaping=underscores` to the `Accept` header handling for content negotiation so OpenMetrics are handled correctly. ([#7209](open-telemetry/opentelemetry-dotnet#7209)) * Omit histogram `_sum` and `_count` in OpenMetrics when negative bucket thresholds are present. ([#7221](open-telemetry/opentelemetry-dotnet#7221)) ... (truncated) Commits viewable in [compare view](open-telemetry/opentelemetry-dotnet@core-1.15.3...core-1.17.0). </details> Pinned [OpenTelemetry.Extensions.Hosting](https://github.com/open-telemetry/opentelemetry-dotnet) at 1.17.0. <details> <summary>Release notes</summary> _Sourced from [OpenTelemetry.Extensions.Hosting's releases](https://github.com/open-telemetry/opentelemetry-dotnet/releases)._ ## 1.17.0 For highlights and announcements pertaining to this release see: [Release Notes > 1.17.0](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md#1170). The following changes are from the previous release [1.17.0-rc.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.17.0-rc.1). * NuGet: [OpenTelemetry v1.17.0](https://www.nuget.org/packages/OpenTelemetry/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Api/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Api/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api.ProviderBuilderExtensions v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Api.ProviderBuilderExtensions/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Api.ProviderBuilderExtensions/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Console v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Console/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.Console/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.InMemory v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.InMemory/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.InMemory/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.OpenTelemetryProtocol v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.OpenTelemetryProtocol/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Zipkin v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Zipkin/1.17.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0/src/OpenTelemetry.Exporter.Zipkin/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Extensions.Hosting v1.17.0](https://www.nuget.org/packages/OpenTelemetry.Extensions.Hosting/1.17.0) No notable changes. ... (truncated) ## 1.17.0-rc.1 The following changes are from the previous release [1.16.0](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.16.0). * NuGet: [OpenTelemetry v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry/1.17.0-rc.1) * Fixed a metric point reclaim data race on CPU ARM architectures. ([#7401](open-telemetry/opentelemetry-dotnet#7401)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * Replaced the vendored copy of `EnvironmentVariablesConfigurationProvider` with a direct `Microsoft.Extensions.Configuration.EnvironmentVariables` package dependency. Consumers gain automatic pickup of upstream bug fixes and security patches; no public API or behavioural change. ([#7146](open-telemetry/opentelemetry-dotnet#7146)) * Added a verbose `OpenTelemetry-Sdk` self-diagnostics event that is emitted when an activity is dropped because its local (in-process) parent is not recorded. ([#7427](open-telemetry/opentelemetry-dotnet#7427)) * Added support for a Schema URL on `Resource` instances. ([#7472](open-telemetry/opentelemetry-dotnet#7472)) * Fixed a metric storage leak that occurred when meters and instruments were repeatedly created and disposed. ([#7466](open-telemetry/opentelemetry-dotnet#7466)) * Added `ExcludedTagKeys` property to `MetricStreamConfiguration` to support excluding specific tag keys from metric streams. ([#7373](open-telemetry/opentelemetry-dotnet#7373)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.17.0-rc.1/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.17.0-rc.1](https://www.nuget.org/packages/OpenTelemetry.Api/1.17.0-rc.1) * Fixed `TraceContextPropagator` to normalize empty `tracestate` header values to `null` when extracting trace context. ([#7407](open-telemetry/opentelemetry-dotnet#7407), [#7433](open-telemetry/opentelemetry-dotnet#7433)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * **Experimental (pre-release builds only):** Updated `EnvironmentVariableCarrier.Get` to read only the normalized environment variable name, following the updated [environment variable carrier specification](open-telemetry/opentelemetry-specification#5144). Non-normalized carrier keys are no longer matched, even when they would normalize to the requested key. ... (truncated) ## 1.17.0-beta.1 The following changes are from the previous release [1.16.0-beta.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/coreunstable-1.16.0-beta.1). * NuGet: [OpenTelemetry.Exporter.Prometheus.AspNetCore v1.17.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.AspNetCore/1.17.0-beta.1) * Added a verbose-level diagnostic event for ignored metrics. ([#7429](open-telemetry/opentelemetry-dotnet#7429)) * The library is now marked as trim and AOT compatible. ([#7441](open-telemetry/opentelemetry-dotnet#7441)) * Fix double unit suffixes in metric names when using OpenMetrics. ([#7454](open-telemetry/opentelemetry-dotnet#7454)) * Fix incorrect handling of leading digits in metric names for OpenMetrics. ([#7454](open-telemetry/opentelemetry-dotnet#7454)) * Add `PrometheusAspNetCoreOptions.ScopeInfoEnabled` property to enable or disable scope labels in Prometheus metrics. Defaults to `true`. ([#7436](open-telemetry/opentelemetry-dotnet#7436)) * Added support for the `dots` and `values` Prometheus UTF-8 name escaping schemes when negotiated via the `Accept` header. ([#7439](open-telemetry/opentelemetry-dotnet#7439)) * Add `PrometheusAspNetCoreOptions.TargetInfoEnabled` property to enable or disable the `target_info` metric in Prometheus metrics. Defaults to `true`. ([#7438](open-telemetry/opentelemetry-dotnet#7438)) * Added support for the `allow-utf-8` Prometheus UTF-8 name escaping scheme when negotiated via the `Accept` header. ([#7440](open-telemetry/opentelemetry-dotnet#7440)) * Add `PrometheusAspNetCoreOptions.ResourceConstantLabels` property to select resource attributes to add to each metric as constant labels. Defaults to `null` (no resource attributes are added as metric labels). ([#7471](open-telemetry/opentelemetry-dotnet#7471)) * Add `PrometheusAspNetCoreOptions.MaxScrapeResponseSizeBytes` to configure the maximum size of a scrape response. The default is now ~166 MiB. ([#7487](open-telemetry/opentelemetry-dotnet#7487)) * A scrape whose serialized output exceeds the maximum scrape response size limit now responds with HTTP 500. ([#7487](open-telemetry/opentelemetry-dotnet#7487)) * Fixed the Prometheus text exposition format emitting redundant comments. ([#7491](open-telemetry/opentelemetry-dotnet#7491)) * Made `Accept` header content negotiation consistent with the `PrometheusHttpListener` endpoint. ... (truncated) ## 1.16.0 For highlights and announcements pertaining to this release see: [Release Notes > 1.16.0](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md#1160). The following changes are from the previous release [1.16.0-rc.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.16.0-rc.1). * NuGet: [OpenTelemetry v1.16.0](https://www.nuget.org/packages/OpenTelemetry/1.16.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.16.0](https://www.nuget.org/packages/OpenTelemetry.Api/1.16.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry.Api/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api.ProviderBuilderExtensions v1.16.0](https://www.nuget.org/packages/OpenTelemetry.Api.ProviderBuilderExtensions/1.16.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry.Api.ProviderBuilderExtensions/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Console v1.16.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Console/1.16.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry.Exporter.Console/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.InMemory v1.16.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.InMemory/1.16.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry.Exporter.InMemory/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.OpenTelemetryProtocol v1.16.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.OpenTelemetryProtocol/1.16.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Zipkin v1.16.0](https://www.nuget.org/packages/OpenTelemetry.Exporter.Zipkin/1.16.0) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry.Exporter.Zipkin/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Extensions.Hosting v1.16.0](https://www.nuget.org/packages/OpenTelemetry.Extensions.Hosting/1.16.0) No notable changes. ... (truncated) ## 1.16.0-rc.1 The following changes are from the previous release [1.15.3](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.15.3). * NuGet: [OpenTelemetry v1.16.0-rc.1](https://www.nuget.org/packages/OpenTelemetry/1.16.0-rc.1) * Stop validating View-provided metric stream `Name` against the instrument name syntax, per [spec clarification](open-telemetry/opentelemetry-specification#5094). ([#7300](open-telemetry/opentelemetry-dotnet#7300)) * Fix incorrect validation of `OTEL_BSP_*` and `OTEL_BLRP_*` environment variables. ([#7187](open-telemetry/opentelemetry-dotnet#7187)) * Fix observable instrument callbacks running once per reader instead of once per collection cycle. ([#7188](open-telemetry/opentelemetry-dotnet#7188)) * Added exception safety for user-supplied `ExemplarReservoir` implementations. Exceptions thrown from `Offer` are now caught and logged rather than propagating out of `Counter.Add`/`Histogram.Record`. ([#7277](open-telemetry/opentelemetry-dotnet#7277)) * Update `OpenTelemetrySdkEventSource` to support the W3C randomness flag. ([#7301](open-telemetry/opentelemetry-dotnet#7301)) * Added `ObservedTimestamp` property to `LogRecord`. ([#6979](open-telemetry/opentelemetry-dotnet#6979)) * **Breaking Change** Explicit histogram boundaries no longer allow more than 10 million values. ([#7165](open-telemetry/opentelemetry-dotnet#7165)) * Fixed a circular reference which could cause a `LoggerProvider` to fail to resolve when one of its dependencies depends on `ILogger` or `ILoggerFactory`. As part of this fix the `LoggerProvider` resolved from dependency injection is now created lazily when the first logger is created rather than when `ILoggerProvider` or `ILoggerFactory` is resolved. A consequence is that any invalid configuration now surfaces when the first log record is written instead of when the logging services are resolved. ([#7308](open-telemetry/opentelemetry-dotnet#7308)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0-rc.1/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.16.0-rc.1](https://www.nuget.org/packages/OpenTelemetry.Api/1.16.0-rc.1) * **Experimental (pre-release builds only):** Add support for using environment variables as context propagation carriers. ([#7174](open-telemetry/opentelemetry-dotnet#7174)) * Fix `BaggagePropagator` to correctly follow Key and Value Encoding rules as per ... (truncated) ## 1.16.0-beta.1 The following changes are from the previous release [1.15.3-beta.1](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/coreunstable-1.15.3-beta.1). * NuGet: [OpenTelemetry.Exporter.Prometheus.AspNetCore v1.16.0-beta.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.AspNetCore/1.16.0-beta.1) * Fixed scrape response cache freshness using monotonic time so it is not affected by NTP system clock adjustments. ([#7253](open-telemetry/opentelemetry-dotnet#7253)) * **Breaking Change** Removed `DisableTimestamp` property from `PrometheusAspNetCoreOptions`. ([#7176](open-telemetry/opentelemetry-dotnet#7176)) * Fixed the serialization of `NaN`, `PositiveInfinity`, and `NegativeInfinity` values in Prometheus metrics to be compliant with the specification. ([#7179](open-telemetry/opentelemetry-dotnet#7179)) * Fixed loss of precision when serializing `double` and `float` values in Prometheus metrics to be compliant with the specification by using 17 significant digits to represent such values. ([#7179](open-telemetry/opentelemetry-dotnet#7179)) * Fix non-ASCII characters in metric names and unit strings not being sanitized correctly during Prometheus serialization. ([#7184](open-telemetry/opentelemetry-dotnet#7184)) * Fix case where reader tracking could be reset while readers were still active. ([#7190](open-telemetry/opentelemetry-dotnet#7190)) * Improve `Accept` header handling for format negotiation so OpenMetrics is selected correctly by considering whitespace and `q` weights. ([#7208](open-telemetry/opentelemetry-dotnet#7208)) * Emit OpenMetrics exemplars for counters and histogram buckets. ([#7222](open-telemetry/opentelemetry-dotnet#7222)) * Fix incorrect handling of untyped metrics when using OpenMetrics format. ([#7219](open-telemetry/opentelemetry-dotnet#7219)) * Fix Prometheus/OpenMetrics serialization to emit metric and label names containing `_` instead of dropping them and prefixing leading digits. Invalid characters are replaced with `_` instead of being dropped. ([#7209](open-telemetry/opentelemetry-dotnet#7209)) * Add `escaping=underscores` to the `Accept` header handling for content negotiation so OpenMetrics are handled correctly. ([#7209](open-telemetry/opentelemetry-dotnet#7209)) * Omit histogram `_sum` and `_count` in OpenMetrics when negative bucket thresholds are present. ([#7221](open-telemetry/opentelemetry-dotnet#7221)) ... (truncated) Commits viewable in [compare view](open-telemetry/opentelemetry-dotnet@core-1.15.3...core-1.17.0). </details> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details>
Fixes #5143
Prototypes:
Rationale
The previous wording required environment variable carriers to normalize every key present in the carrier before matching a requested propagation key.
This PR removes that requirement for two reasons:
Instead, carriers normalize the key requested by the propagator and read only the corresponding normalized environment variable name.
Keyssimilarly returns only environment variable names that are already normalized.This keeps injection behavior unchanged while making extraction predictable and avoiding unnecessary environment enumeration.